package com.sgzn.sgpay.util;

import java.math.BigDecimal;

/**
 * ClassName 金额单位转换
 */
public class AmountTransUtil {
    /**
     * 元转分
     * @param amount 金额
     * @param decimalNum 保留小数
     * @return 单位为分的金额
     */
    public static BigDecimal yuanToCent(BigDecimal amount,int decimalNum){
        if(amount == null){
            return null;
        }
        amount = amount.multiply(BigDecimal.valueOf(100)).setScale(decimalNum,BigDecimal.ROUND_HALF_EVEN);
        return amount;
    }

    /**
     * 元转分
     * @param amount 金额
     * @param decimalNum 保留小数
     * @return 单位为分的金额
     */
    public static String yuanToCents(BigDecimal amount,int decimalNum){
        if(amount == null){
            return null;
        }
        amount = amount.multiply(BigDecimal.valueOf(100)).setScale(decimalNum,BigDecimal.ROUND_HALF_EVEN);
        return amount.toString();
    }

    /**
     * 分转元
     * @param amount 金额
     * @param decimalNum 保留小数
     * @return 单位为元的金额
     */
    public static BigDecimal centToYuan(BigDecimal amount,int decimalNum){
        if(amount == null){
            return null;
        }
        amount = amount.divide(BigDecimal.valueOf(100),decimalNum,BigDecimal.ROUND_HALF_UP);
        return amount;
    }

    /**
     * 分转元
     * @param amount 字符金额
     * @param decimalNum 保留小数
     * @return
     */
    public static BigDecimal centToYuan(String amount,int decimalNum){
        if(amount == null){
            return null;
        }
        BigDecimal decimal = new BigDecimal(amount);
        return centToYuan(decimal,decimalNum);
    }


    public static void main(String[] args){

        BigDecimal trsAmount = new BigDecimal("1");
        String total_fee = AmountTransUtil.yuanToCents(trsAmount, 0);//元转分
        System.out.println("total_fee " + total_fee );
    }
}
